const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

/**
 * 将 字符串转化为json对象. 如果已经是对象或Json对象,则直接返回
 * @param {input} input 
 */
function parseJsonObject(input) {
  if (typeof input === 'string') {
      try {
          // 尝试将字符串解析为JSON对象，然后再转回JSON字符串
          const obj = JSON.parse(input);
          return obj;
      } catch (error) {
          // 如果不是有效的JSON，则直接抛出异常
          throw new Error('Invalid JSON String');
      }
  } else {
      // 如果是对象或其他类型，直接返回
      return input;
  }
}

function toMap(arr, keyFunc) {
  return arr.reduce((map, item) => {
    const key = keyFunc(item);
    map[key] = item;
    return map;
  }, {});
}


module.exports = {
  formatTime,parseJsonObject:parseJsonObject,toMap:toMap
}
